/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.compra.managed;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.SelectEvent;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.compra.bean.CXP;
import sv.com.intesal.compra.bean.Proveedor;
import sv.com.intesal.compra.controlador.CXPControlador;
import sv.com.intesal.seguridad.managed.SessionManaged;

/**
 *
 * @author ejerez
 */
@ManagedBean(name = "consultaCXPManaged")
@ViewScoped
public class ConsultaCXPManaged implements Serializable {

    private Mensaje m;
    private SessionManaged sm;
    private Proveedor selectedProveedor;
    /*ENCA*/
    private CXP selectedEncaCXP;
    private CXP selectedDetaCXP;
    private List<CXP> encaCXP;
    private List<CXP> detaCXP;
    private CXP selectedEncaCXP_Totales;

    public ConsultaCXPManaged() {

        this.m = new Mensaje();
        this.sm = new SessionManaged();
        this.selectedProveedor = new Proveedor();
        this.selectedDetaCXP = new CXP();
        this.selectedEncaCXP = new CXP();
    }

    public void getProveedor_Quick(Proveedor pr) {
        try {
            this.selectedProveedor = pr;
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void buscarGrid() {
        try {
            if (sm.validar_rol_usuario("wfrmcon_CXP", sm.buscar) == true) {
                this.selectedEncaCXP.setId_p(this.selectedProveedor.getId_p());
                CXPControlador cxp = new CXPControlador();
                this.encaCXP = cxp.getCXP_Enca(selectedEncaCXP);
                this.selectedEncaCXP_Totales = cxp.getCXP_Enca_Totales(selectedEncaCXP);
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void generarReporte_CXP() {

        try {
            if (this.encaCXP == null) {
                m.messageError("NO HAY REGISTROS EN LA BUSQUEDA");
            } else if (this.encaCXP.size() <= 0) {
                m.messageError("NO HAY REGISTROS EN LA BUSQUEDA");
            } else {
                if (sm.validar_rol_usuario("wfrmcon_CXP", sm.reporte) == true) {
                    this.selectedEncaCXP.setId_p(this.selectedProveedor.getId_p());
                    CXPControlador cxp = new CXPControlador();
                    cxp.generarReporte_CXP(this.selectedEncaCXP);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void llenar_tableDeta(SelectEvent event) {
        CXP c = ((CXP) event.getObject());

        try {
            CXPControlador cxp = new CXPControlador();
            this.detaCXP = cxp.getCPX_Deta(this.selectedDetaCXP.getId_p());
        } catch (Exception e) {
            m.message(m.getIerror());
            e.printStackTrace();
        }
    }

    /*SETTERS AND GETTERS*/
    public Proveedor getSelectedProveedor() {
        if (selectedProveedor == null) {
            selectedProveedor = new Proveedor();
        }
        return selectedProveedor;
    }

    public void setSelectedProveedor(Proveedor selectedProveedor) {
        this.selectedProveedor = selectedProveedor;
    }

    public List<CXP> getEncaCXP() {
        return encaCXP;
    }

    public void setEncaCXP(List<CXP> encaCXP) {
        this.encaCXP = encaCXP;
    }

    public CXP getSelectedDetaCXP() {
        if (selectedDetaCXP == null) {
            selectedDetaCXP = new CXP();
        }
        return selectedDetaCXP;
    }

    public void setSelectedDetaCXP(CXP selectedDetaCXP) {
        this.selectedDetaCXP = selectedDetaCXP;
    }

    public CXP getSelectedEncaCXP() {
        if (selectedEncaCXP == null) {
            selectedEncaCXP = new CXP();
        }
        return selectedEncaCXP;
    }

    public void setSelectedEncaCXP(CXP selectedEncaCXP) {
        this.selectedEncaCXP = selectedEncaCXP;
    }

    public List<CXP> getDetaCXP() {
        return detaCXP;
    }

    public void setDetaCXP(List<CXP> detaCXP) {
        this.detaCXP = detaCXP;
    }

    public CXP getSelectedEncaCXP_Totales() {
        if (this.selectedEncaCXP_Totales == null) {
            this.selectedEncaCXP_Totales = new CXP();
        }
        return selectedEncaCXP_Totales;
    }

    public void setSelectedEncaCXP_Totales(CXP selectedEncaCXP_Totales) {
        this.selectedEncaCXP_Totales = selectedEncaCXP_Totales;
    }
}